package com.todo.delicacy.application.service;

import com.todo.common.common.entity.response.page.PageResult;
import com.todo.common.common.enums.EnableTypeEnum;
import com.todo.delicacy.application.entity.bo.RestaurantDetailBO;
import com.todo.delicacy.application.entity.bo.RestaurantInfoBO;
import com.todo.delicacy.application.entity.condition.RestaurantInfoConditionBO;

import java.util.List;

/**
 * (RestaurantInfo)表服务接口
 *
 * @author zhangwenxiang
 * @since 2024-03-04 00:19:48
 */
public interface RestaurantInfoService {
    /**
     * 新增饭店信息
     *
     * @param restaurantInfoBO 实例对象
     * @return 实例对象
     */
    Boolean insertRestaurantInfo(RestaurantInfoBO restaurantInfoBO);

    /**
     * 更新饭店信息
     *
     * @param restaurantInfoBO
     * @return
     */
    Boolean updateRestaurantInfo(RestaurantInfoBO restaurantInfoBO);

    /**
     * 根据饭店Id删除饭店信息
     *
     * @param restaurantId
     * @return
     */
    Boolean removeRestaurantInfoById(Long restaurantId);

    /**
     * 更新饭店是否营业状态
     *
     * @param restaurantId
     * @param status
     * @return
     */
    Boolean updateRestaurantOpenStatus(Long restaurantId, EnableTypeEnum status);

    /**
     * 根据饭店Id查询饭店信息
     *
     * @param restaurantId
     * @return
     */
    RestaurantInfoBO queryRestaurantInfoById(Long restaurantId);

    /**
     * 根据饭店Id查询饭店详情
     *
     * @param restaurantId
     * @return
     */
    RestaurantDetailBO queryRestaurantDetailById(Long restaurantId);

    /**
     * 根据饭店PoiId查询饭店详情
     *
     * @param PoiId
     * @return
     */
    RestaurantDetailBO queryRestaurantDetailByPoiId(Long PoiId);

    /**
     * 多条件查询饭店信息列表
     *
     * @param conditionBO
     * @return
     */
    PageResult<RestaurantInfoBO> queryRestaurantInfoByCondition(RestaurantInfoConditionBO conditionBO);

    /**
     * 根据饭店Id列表查询饭店信息列表
     *
     * @param restaurantIdList
     * @return
     */
    List<RestaurantInfoBO> queryRestaurantInfoByIdList(List<Long> restaurantIdList);

    /**
     * 根据饭店名称查询饭店信息列表
     *
     * @param restaurantName
     * @return
     */
    List<RestaurantInfoBO> queryRestaurantInfoByName(String restaurantName);
}
